Hazelcast Query Language (Predicates) ব্যবহার করা

Database Tutorials - হ্যাজেলকাস্ট  (Hazelcast) Hazelcast Query এবং Indexing |
268
268

Hazelcast Query Language (HQ) হল Hazelcast-এর জন্য একটি শক্তিশালী এবং নমনীয় কুয়েরি ইঞ্জিন, যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারগুলোর মধ্যে তথ্য খোঁজার জন্য ব্যবহৃত হয়। Predicates হল Hazelcast-এ কুয়েরি করার জন্য ব্যবহৃত একটি প্রাথমিক উপাদান, যা ডেটার উপর শর্ত আরোপ করে, যেমন সমান, বৃহত্তর, ছোট বা বিভিন্ন ধরনের তুলনা।

Hazelcast-এর IMap (ডিস্ট্রিবিউটেড ম্যাপ) ডেটা স্ট্রাকচার এবং অন্যান্য ডেটা স্ট্রাকচারগুলোর মধ্যে Predicates ব্যবহার করে, আপনি খুব দ্রুত এবং কার্যকরভাবে ডিস্ট্রিবিউটেড ডেটা থেকে তথ্য খুঁজে পেতে পারেন।


Predicates কী?

Predicates হল শর্ত যা Hazelcast ডেটা স্ট্রাকচারে একটি নির্দিষ্ট মান বা বৈশিষ্ট্য অনুসারে ডেটা ফিল্টার বা অনুসন্ধান করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি এমন একটি Predicate তৈরি করতে পারেন যা কেবলমাত্র নির্দিষ্ট শর্ত পূরণ করে এমন ডেটা ফিল্টার করবে, যেমন "যতটুকু বয়স ৩০ এর বেশি" বা "যতটুকু নাম 'John' সমান"।

Hazelcast-এর Predicates বিভিন্ন ধরনের হতে পারে, যেমন:

  • EqualPredicate: মানের সাথে সমান।
  • GreaterThanPredicate: মানের চেয়ে বড়।
  • LessThanPredicate: মানের চেয়ে ছোট।
  • LikePredicate: একটি স্ট্রিং মেলানো।
  • AndPredicate: একাধিক শর্ত একসাথে চেক করা।

Predicates ব্যবহার করা

Hazelcast-এ Predicates ব্যবহার করার জন্য, আমরা সাধারণত IMap ডেটা স্ট্রাকচার ব্যবহার করি। নিচে একটি উদাহরণ দেয়া হলো, যেখানে IMap এ একটি Predicate তৈরি করে, ডেটা অনুসন্ধান করা হবে।

ধাপ ১: IMap এবং Predicates তৈরি করা

import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
import com.hazelcast.query.Predicate;
import com.hazelcast.query.Predicates;

public class HazelcastPredicateExample {
    public static void main(String[] args) {
        // Hazelcast ইনস্ট্যান্স তৈরি করা
        HazelcastInstance hz = Hazelcast.newHazelcastInstance();

        // IMap তৈরি করা
        IMap<Integer, String> map = hz.getMap("myMap");

        // কিছু ডেটা ইনসার্ট করা
        map.put(1, "John");
        map.put(2, "Jane");
        map.put(3, "Steve");
        map.put(4, "David");

        // Predicates তৈরি করা
        Predicate<Integer, String> predicate = Predicates.equal("this", "John");

        // Predicate ব্যবহার করে কুয়েরি চালানো
        IMap<Integer, String> result = map.localKeySet(predicate);

        // ফলাফল প্রদর্শন
        for (Integer key : result) {
            System.out.println("Found: " + key + " -> " + map.get(key));
        }
        
        hz.shutdown();  // Hazelcast বন্ধ করা
    }
}

ধাপ ২: Predicates এর কিছু সাধারণ ধরন

  1. EqualPredicate: সমান মান খোঁজা।
Predicate<Integer, String> predicate = Predicates.equal("name", "John");
  1. GreaterThanPredicate: মানের চেয়ে বড় খোঁজা।
Predicate<Integer, Integer> predicate = Predicates.greaterThan("age", 30);
  1. LessThanPredicate: মানের চেয়ে ছোট খোঁজা।
Predicate<Integer, Integer> predicate = Predicates.lessThan("age", 30);
  1. LikePredicate: স্ট্রিং মানের সাথে কিছুটা মেলানো।
Predicate<Integer, String> predicate = Predicates.like("name", "Jo%");
  1. AndPredicate: একাধিক Predicates যুক্ত করা।
Predicate<Integer, String> predicate = Predicates.and(
    Predicates.equal("name", "John"),
    Predicates.greaterThan("age", 25)
);

Predicates এবং Indexing

Hazelcast Query Language-এ, প্রেডিকেট ব্যবহার করার জন্য Indexing ব্যবহার করা অনেক গুরুত্বপূর্ণ। এটি ডেটা খোঁজার কার্যকারিতা এবং দ্রুততা বাড়ায়। Hazelcast Index ব্যবহার করে, আমরা IMap এর মধ্যে ইনডেক্স তৈরি করতে পারি, যা কুয়েরি পারফরম্যান্সকে আরও উন্নত করে।

Index তৈরি করা

import com.hazelcast.query.IndexConfig;
import com.hazelcast.query.IndexType;

// IMap এ ইনডেক্স তৈরি করা
map.addIndex(new IndexConfig(IndexType.HASH, "age"));

এই কনফিগারেশন দিয়ে age ফিল্ডে ইনডেক্স তৈরি করা হয়, যার ফলে greaterThan("age", 30) মতো কুয়েরি অনেক দ্রুত হয়।


Predicates ব্যবহার করে ফিল্টার করা

Hazelcast-এর Predicates এর মাধ্যমে ডেটা ফিল্টার করা খুব সহজ। আপনি IMap এর ডেটাতে ফিল্টার শর্ত আরোপ করে, দ্রুত এবং কার্যকরভাবে ডেটা বের করতে পারেন।

Predicate<Integer, String> predicate = Predicates.lessThan("age", 30);
IMap<Integer, String> result = map.localKeySet(predicate);

এই কুয়েরি age এর মান ৩০ এর কম এমন সমস্ত মান ফিরে আসবে।


Predicates এর পারফরম্যান্স অপটিমাইজেশন

Predicates ব্যবহার করার সময় Indexing এবং Distributed Query প্রক্রিয়া সঠিকভাবে সেট করা হলে, Hazelcast Query Performance আরও উন্নত হতে পারে। সুতরাং, কুয়েরি অপটিমাইজ করার জন্য Index ব্যবহারের গুরুত্ব অপরিসীম।


সারাংশ

Hazelcast Query Language (HQ) এবং Predicates হল ডিস্ট্রিবিউটেড ডেটা থেকে তথ্য অনুসন্ধান করার একটি শক্তিশালী পদ্ধতি। Predicates ব্যবহার করে আপনি ডিস্ট্রিবিউটেড ডেটার মধ্যে বিভিন্ন শর্তের ভিত্তিতে কার্যকরভাবে কুয়েরি করতে পারেন। প্রেডিকেটস এর নানা ধরন, যেমন equal, greaterThan, like, এবং and, ডেটার উপর বিভিন্ন ধরনের শর্ত আরোপ করতে সহায়ক। Hazelcast Index ব্যবহার করে আপনি কুয়েরি পারফরম্যান্স আরও উন্নত করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion